/**
 * 版权所有(C)，上海海鼎信息工程股份有限公司，2008，所有权利保留。
 * 
 * 项目名：	rumba-web
 * 文件名：	QCommand.java
 * 模块说明：	
 * 修改历史：
 * Oct 25, 2008 - lxm - 创建。
 */
package com.hd123.rumba.gwt.util.client.commandqueue;

import com.google.gwt.user.client.rpc.AsyncCallback;

/**
 * 设计用于RPC调用的命令接口。
 * 
 * @author lxm
 * 
 */
public interface RPCCommand extends CommandQueue.Command {

  /**
   * 当被调用时被触发。设计在其中执行远程调用。
   * 
   * @param queue
   *          指定引起此次事件的队列对象。
   * @param callback
   *          提供可被用于RPC调用的回调对象。
   */
  public void onCall(final CommandQueue queue, final AsyncCallback callback);

  /**
   * 当远程调用失败时被触发。
   * 
   * @param queue
   *          指定引起此次事件的队列对象。
   * @param t
   *          指定RPC调用过程中的异常对象。
   */
  public void onFailure(final CommandQueue queue, final Throwable t);

  /**
   * 当远程调用成功返回时被触发。
   * 
   * @param queue
   *          指定引起此次事件的队列对象。
   * @param result
   *          指定RPC调用的返回值。
   */
  public void onSuccess(final CommandQueue queue, final Object result);

}
